Technical Essays Referenced UML example of taking what might be primitive types (Contact and SocialSecurity as string, in this case) and removing the primitive and substituting it with a user-defined type The author says that you can't keep using primitives! Your validation code will end up being duplicated and scattered all over the architecture! Well? Yes and no. It depends on what kind of architecture you're building. DRY can be a very bad thing in one scenario and absolutely necessary in another. Don't use a LOTR architecture strategy if you don't need to (Also of note, from Lobsters reader @corbin, "How Futile are Mindless Assessments of Roundoff in Floating-Point Computation? ")
A nice primitive obsession propaganda meme from the web